package org.csu.jpetstore_front.controller.front;

import org.csu.jpetstore_front.common.CommonResponse;
import org.csu.jpetstore_front.entity.Account;
import org.csu.jpetstore_front.entity.Cart;
import org.csu.jpetstore_front.entity.CartItem;
import org.csu.jpetstore_front.entity.Cartshop;
import org.csu.jpetstore_front.node.PassToken;
import org.csu.jpetstore_front.service.CatalogService;
import org.csu.jpetstore_front.service.OrderService;
import org.csu.jpetstore_front.vo.AccountVO;
import org.csu.jpetstore_front.vo.CartVO;
import org.csu.jpetstore_front.vo.OrderVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Controller
@RequestMapping("/carts/")
public class CartController {

    private CartItem cartItem;

    @Autowired
    private CatalogService catalogService;

    @Autowired
    private OrderService orderService;
//    @GetMapping("cartshopitem")
//    @ResponseBody
//    @PassToken
//    public  CommonResponse<List<OrderVO>> getCartShopItems(String username ){
//        return orderService.getOrderByUsername(username);
//
//    };
    @GetMapping("usercart")
    @ResponseBody
    @PassToken
    public CommonResponse<List<CartVO>> getCartShopItems(Account account){
        return orderService.getCartShopItems(account);
    }

//    @PutMapping("cartin")
//    @ResponseBody
//    @PassToken
//    public CommonResponse<OrderVO> insertIntoCartShop(OrderVO orderVO ){
//        return orderService.insertIntoCartShop(orderVO);
//    }
//    @PutMapping("cartre")
//    @ResponseBody
//    @PassToken
//    public CommonResponse<OrderVO> deleteItemFromCart(OrderVO orderVO){
//        return  orderService.deleteItemFromCartShop(orderVO);
//    }
//    @PutMapping("cartup")
//    @ResponseBody
//    @PassToken
//    public CommonResponse<OrderVO> updateQuantity(OrderVO orderVO ){
//        return orderService.updateItemQuantity(orderVO);
//    }
//    @PutMapping("cartdlA")
//    @ResponseBody
//    @PassToken
//    public CommonResponse<AccountVO> deleteAll(AccountVO accountVO){
//        return  orderService.deleteAll(accountVO);
//    }
    @PutMapping("insert")
    @ResponseBody
    @PassToken
    public CommonResponse<OrderVO> insertIntoCartShop(OrderVO orderVO){
        return orderService.insertIntoCartShop(orderVO);
    }
    @DeleteMapping("delete")
    @ResponseBody
    @PassToken
    public CommonResponse<OrderVO> deleteFromCartShop(OrderVO orderVO){
        return orderService.deleteItemFromCartShop(orderVO);
    }
    @PutMapping("update")
    @ResponseBody
    @PassToken
    public CommonResponse<OrderVO> updateQTY(OrderVO orderVO){
        return orderService.updateItemQuantity(orderVO);
    }
    @DeleteMapping("deleteall")
    @ResponseBody
    @PassToken
    public  CommonResponse<AccountVO> deleteAll(AccountVO accountVO){
        return  orderService.deleteAll(accountVO);
    }

}